+++
title="Народы Толкина как программисты"
description="Моя шутка широко разошлась по интернету, добавлю ее и сюда. "
+++

<a href="https://vitus-wagner.livejournal.com/1122828.html?thread=38374156#t38374156">Оригинал в комментариях в ЖЖ Vitus_Wagner</a>

**Эльфы** пишут на функциональных, сложных, и необычных языках. Пишут в одиночку, столетиями запиливая без релиза очень сложные шедевры. После релиза они выкладывают их в опенсорс (любишь — отпусти), багов в их программах практически нет, но если уж есть, то уровня «это кольцо порабощает все живое». С презрением относятся к энтерпрайзу и внедрению, обычно программу внедряют ровно один раз и в одном месте, для нового случая делается новый шедевр. «Переносимость нужна людям, не умеющим писать новые программы», так сказать. Иногда их шедевры попадают в руки оркам, тогда они становятся окружены уродливыми подпорками и «улучшениями», но это недолго, лет через десять особо инициативный урук «перепишет велосипед» в энтерпрайз стиле, добавив в проект заодно 15 новых зависимостей.

**Гномы** — это программисты под ебмедед. Пишут на чистом хардкорном C, юнит-тестов, модульности, переиспользования кода, сторонних библиотек и прочего не признают. Пишут один раз, добротно и на совесть, потом пару лет отладки путем трассировки — и вот надежный результат, который потом отливается в камне и используется для управления полетом на Луну. Красивостей, UX, GUI и всего этого не используют (впрочем, UI в их представлении — это хардварная кнопка). Презирают новомодное веяние объекто-ориентированного программирования.

**Хоббиты** пишут для души и немного. Мелкие полезные удобные утилиты, без претензий, но хорошо работающие. Хоббиты организуют user group и вдумчиво пьют там чай, но больше говорят там о жизни, чем о программировании. Раз в столетие один из хоббитов уезжает в США и пишет там ядро операционки.

**Орки** — программисты в энтерпрайз. Пишут на Java и C# огромные уродливые индустриальные системы. Их лозунг — пусть уродливо, зато настоящий бизнес. Они любят обмазываться фабриками абстрактных контроллеров, которые создают менеджеры, которые запускают воркфлоу, которые инстанцируются через контейнер внедрения зависимостей. От души презирают эльфов и отзываются в них стиле «уродливые хипстеры ебутся в афедрон со своими жабоскриптами, пока мы создаем Настоящие Системы Ентерпрайз Качества». Назгулы заставляют орков писать юнит-тесты, орки ужасно боятся назгулов, но пользы от юнит-тестов не понимают и пишут их в стиле «если в функцию передать „hello“, она напечатает „hello“». Также орки очень любят переиспользование кода, и библиотеки, у Которых-Есть-Немного-Зависимостей-Совсем-Чуть-Зато-Полностью-Решает-Нашу-Проблему. Также они любят ORM, SOAP, WSDL, WCF и вообще кучу аббревиатур.

**Люди Запада** пишут энтерпрайзный код, но совсем не такой, как тупые орки. Они каждый день на хабре обсуждают новую статью, написанную кем-то из эльфов, и клятвенно обещают внедрить это в новый проект, но в глубине души знают, что им не суждено достичь уровня великих мастеров, поэтому опять делают все как раньше. Код Людей Запада с каждым годом становится все менее эльфийским и все более орочьим, чтобы объяснить это, они ссылаются на то, что магия ушла из мира, и нынешние программисты Кнута не читали, и требования энтерпрайза с каждым годом все ужаснее. Об эльфийских шедеврах им приходиться лишь читать в книгах, чаще им приходиться интегрироваться с огромной орочьей энтепрайз системой. Тогда Люди Запада пишут прочную прослойку, чтобы изолировать себя от орочьего ада, отсылают оркам баги и дизассемблируют их код, чтобы понять его страшную орочью логику, а потом плачут у себя в бложике. 